/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package util;

import beans.PuntosAmigo;
import java.util.ArrayList;
import javax.swing.event.TableModelEvent;
import javax.swing.table.AbstractTableModel;

/**
 *
 * @author nMoncho
 */
public class PuntajeAmigoTableModel extends AbstractTableModel{

    private ArrayList<PuntosAmigo> puntajes;

    public PuntajeAmigoTableModel(ArrayList<PuntosAmigo> puntajes){
        this.puntajes = puntajes;
    }

    @Override
    public int getRowCount() {
        return puntajes.size();
    }

    @Override
    public int getColumnCount() {
        return 4;
    }

    @Override
    public String getColumnName(int column) {
        String retorno = null;
        switch(column){
            case 0: retorno = "Descripcion"; break;
            case 1: retorno = "Puntos"; break;
            case 2: retorno = "Desde"; break;
            case 3: retorno = "Hasta"; break;
        }

        return retorno;
    }

    @Override
    public Class<?> getColumnClass(int columnIndex) {
        Class retorno = null;
        switch(columnIndex){
            case 0: retorno = String.class; break;
            case 1: retorno = Integer.class; break;
            case 2: retorno = Integer.class; break;
            case 3: retorno = Integer.class; break;
        }

        return retorno;
    }

    @Override
    public boolean isCellEditable(int rowIndex, int columnIndex) {
        return true;//Todas deben ser editables
    }

    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        PuntosAmigo puntaje = puntajes.get(rowIndex);
        Object retorno = null;
        switch(columnIndex){
            case 0: retorno = puntaje.getDescripcion(); break;
            case 1: retorno = puntaje.getPuntos(); break;
            case 2: retorno = puntaje.getCantidadMinima(); break;
            case 3: retorno = puntaje.getCantidadMaxima(); break;
        }

        return retorno;
    }

    @Override
    public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
        PuntosAmigo puntaje = puntajes.get(rowIndex);
        switch(columnIndex){
            case 0: puntaje.setDescripcion((String)aValue); break;
            case 1: puntaje.setPuntos((Integer)aValue); break;
            case 2: puntaje.setCantidadMinima((Integer)aValue); break;
            case 3: puntaje.setCantidadMaxima((Integer)aValue); break;
        }
    }

}
